Entladen unter Postgres oder Informix / UNIX

 

Am einfachsten ist es, wenn Sie als User superx vom SuperX-Server direkt auf den FSV-Datenbankserver zugreifen und entladen können ("Pull"-Verfahren). Dann ist es sogar egal ob Sie IVS unter Informix f. Win., Informix f. Unix oder Postgres einsetzen; außerdem brauchen Sie die Dateien dann nicht vom IVS-Rechner nach SuperX kopieren.

Für Postgres ist dies auch deshalb die einfachste Lösung, weil zum Entladen aus Postgres die Bibliotheken des SuperX-Kernmoduls vorhanden sein müssen.

Für Informix ist auch das Entladen im "Push"-Verfahren möglich: kopieren Sie den gesamten Verzeichnisinhalt ab $IVS_PFAD/rohdaten auf den FSV-Rechner, geben Sie dem Script Ausführungsrechte. Die Scripte laufen nur, wenn die entsprechenden Umgebungsvariablen in der Datei IVS_ENV (im gleichen Verzeichnis, ein Muster liegt vor in IVS_ENV.sam) korrekt gesetzt sind, benennen Sie die Musterdatei um nach IVS_ENV und tragen die richtigen Umgebungsvariablen ein, z.B. den Pfad für $INFORMIXDIR,

In der  IVS_ENV müssen  folgende Umgebungsvariablen gesetzt werden (defaults sind bereits vorbelegt, aber hier und da müssen Sie sicher ran):

 

 

Nur für Informix gelten:

INFORMIXDIR

Home-Verzeichnis von Informix

INFORMIXSERVER

Name des Informixservers

ONCONFIG

Name der onconfig, wenn  auf dem IVS-Rechner mehrere Informix-Instanzen laufen

CLIENT_LOCALE

Sprachumgebung (wichtig fürs Entladen von Datumsformaten)

SERVER_LOCALE

dito

TRANSACTION_OFF

Nur für Informix: Wenn Transaktionen eingeschaltet sind und die Protokoll-Tabellen groß sind, dann sollte dieses wie folgt belegt sein.
TRANSACTION_OFF="SET ISOLATION TO DIRTY READ;"

 

 

 

Nur für Postgres gelten:

PGDATESTYLE

Datumsformat "German"

PGPORT

Port vom Postgres-Server, standardmäßig 5432

PGHOST

Hostname oder IP-Adresse vom Postgres-Server

PGUSER

Benutzerkennung für Postgres-Server (nur Datenbank, nicht Betriebssystem)

PGPATH

Installationsverzeichnis von Postgres, z.B. /usr/local/pgsql

DB_PROPERTIES

Pfad zur db-ivs.properties-Datei mit den Zugangsparametern für IVS unter Postgres

LOGGING_PROPERTIES

Pfad zur Steuerungsdatei mit den Parametern für das Logging beim Entladen, voreingestellt auf ./logging.properties. Normalerweise brauchen Sie hier nichts ändern, wenn beim Entladen Probleme auftauchen, kann man den Level von SEVERE auf INFO oder FINEST ändern, dann werden die konkreten SQLs geloggt. Aber Achtung: wenn keine Fehler mehr auftreten, müssen Sie den Level wieder auf SERVERE ändern, sonst kommen Schlüsselworte in die Logdatei ivs_unload.err, die dann bei der Übernahme nach SuperX fälschlicherweise zu Fehlermeldungen führen.

 

Speziell für Postgres und FSV Version 12.x oder höher:

JDBC_PARAM

Fest vorgegebener Text:
set search_path to mbs;

JDBC_CLASSPATH

Wenn Sie noch das Kernmodul 3.5 nutzen, dann ist die Entladeroutine nicht bereit für den o.g. JDBC_PARAM. Daher muss folgende Library eingebunden werden:

$IVS_LOAD_PFAD/lib/superx4.0.jar:$JDBC_CLASSPATH

Hintergrund der letzten beiden Variablen: Mit FSV 12 wurden die drei Datenbanken COB, SVA und MBS in einer Datenbank "hisrm"  integriert, und SQL-Zugriffe auf das jew. Segment werden immer mit dem Präfix "set search_path to <<Modulname>>" versehen. Damit wird unter Postgres das jew. Schema aktiviert.

Unter Postgres muss für das "Pull"-Verfahren beim Entladen die Datenbankverbindung in der Datei db-ivs.properties eingetragen werden (Muster für Postgres liegt bei in db-ivs_pg.properties.sam). Dazu laden Sie einmal die Datei IVS_ENV mit den obigen Parameter, starten den SuperX-Propadmin (siehe Administrationshandbuch Kernmodul) und richten die Verbindung zum IVS-Server ein. Das Kennwort wird verschlüsselt gespeichert. Danach sind die Entladescripte für Postgres ausführbar.

Hinweis: Anders als Informix hat Postgres hat eine eigene, vom Basissystem unabhängige Benutzerverwaltung. Daher brauchen Sie den User, den Sie zum Entladen aus Postgres nutzen, nicht auf dem SuperX- oder IVS-Rechner auf Betriebssystem-Ebene einrichten. Sie können also z.B. auf dem SuperX-Rechner zum Entladen aus IVS die Kennung IVS des Postgres- Rechners verwenden. Oder Sie richten in der IVS -Datenbank den Benutzer SuperX ein und geben ihm Leserecht auf die Tabellen sowie das Recht, Tabellen und Stored Procedures anzulegen.

 

Für alle Platformen gelten folgende Variablen:

SX_CLIENT

Entladeprogramm für FSV-DB: dbaccess, psql oder jdbc

DATABASE

Entladedatenbank der FSV-DB: INFORMIX, POSTGRES

VERSION

Version von HISFSV(Ganzzahlig)

ERRORMAIL

An wen solle eine Logmail verschickt werden, wenn das Entladen nicht geklappt hat? (nur Unix).

LOGMAIL

An wen soll immer eine Logmail verschickt werden

MAILPROG

Pfad zum ausführbaren Mailprogramm unter Unix, Vorbelegung ist "mail", manche Unixe haben aber auch "mutt".

 

 

 

Wenn die Rohdaten nach dem Entladen vom IVS-Rechner auf den SuperX-Rechner kopiert werden sollen, dann werden für das Script ivs_copy.x folgende Umgebungsvariablen benötigt:

COPY_METHOD

Programm, das die Dateien kopiert; rsync und scp sind wählbar.

REMOTE_DIR

Verzeichnis, in das die Rohdaten auf dem SuperX-Rechner kopiert warden sollen, in der Regel ist dies "/home/superx/db/module/ivs/rohdaten"

REMOTE_USER

Der Unix-Username auf dem SuperX-Rechner, in der Regel "superx".

REMOTE_HOST

Der Rechnername bzw. die IP-Nr. des SuperX-Rechners.

 

Dann starten Sie das Script ivs_unload.x. Wenn es gelaufen ist, müssten die Dateien im unl-Verzeichnis stehen. Prüfen Sie dann bitte, ob dort Dateien mit 0 bytes stehen. Die Logdatei heisst IVS_unload.err.

Wenn Sie das Verzeichnis nicht gemounted haben, müssen das Verzeichnis unl, die IVS_unload.err und die superx.datum  dann in das Verzeichnis $IVS_LOAD_PFAD auf dem SuperX-Rechner kopiert werden, ein Script dafür liegt ebenfalls bei (ivs_copy.x)[3]. Das Entladedatum wird danach in der Textdatei $IVS_LOAD_PFAD/superx.datum gespeichert; wenn das Script einen Fehler findet, dann wird das vorherige Datum (in der Datei superx.datum.alt) gesetzt.

 
Seite 11 / 27 erstellt am 06.07.2010
HIS Hochschul-Informations-System GmbH, Goseriede 9, 30159 Hannover,
Tel.: 0511/1220-0, Fax.: 0511/1220-250, E-Mail: info@his.de
(Bei technischen Fragen wenden Sie sich bitte an webmaster@his.de.)

Dieser Hypertext wurde mit dem MemText Autorensystem erzeugt: www.MemText.de